package com.qining618.common.result;

import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.List;

/**
 * @author flt
 * @date 2019-08-16
 */
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@Builder
@Data
public class TableData<T> implements Serializable {

    /**
     * 页码
     */
    private long pageNo;

    /**
     * 数量
     */
    private long pageSize;

    /**
     * 总数
     */
    private long total;

    /**
     * 列表
     */
    private List<T> list;


    public static <T> TableData<T> of(IPage<T> pageInfo) {
        TableData<T> tableData = new TableData<>();
        tableData.setPageNo(pageInfo.getCurrent());
        tableData.setPageSize(pageInfo.getSize());
        tableData.setTotal(pageInfo.getTotal());
        tableData.setList(pageInfo.getRecords());
        return tableData;
    }

}

